#include <REGX52.H>
#include "DELAY.H"
#include "LCD1602.H"

/**
* LCD1602共有16个针脚，针脚在上方
* 可显示2行16列，每一格有8行5列的像素点
* 屏幕下方的旋钮可以调节像素点的亮度，顺时针亮度增加，逆时针减小
* 跳线插在右侧LCD点阵不亮，左侧会亮
*/
void main()
{
  // 每秒数字递增
  // unsigned int num = 0;

  // 使用LCD显示前必须初始化
  LCD_Init();

  // 正常显示
  // 在1行1列显示1个字符A(显示A)
  LCD_ShowChar(1, 1, 'A');
  // 在1行3列向后显示字符串Hi(显示Hi)
  LCD_ShowString(1, 3, "Hi");
  // 在1行6列显示数字12，长度为2(显示12)
  LCD_ShowNum(1, 6, 12, 2);
  // 在1行9列显示有符号数字-2，长度为1(不含符号)(显示-2)
  LCD_ShowSignedNum(1, 9, -2, 1);
  // 在1行12列显示有符号数字3，长度为1(不含符号)(显示+3)
  LCD_ShowSignedNum(1, 12, 3, 1);
  // 在1行15列显示16进制数字A8，长度为2(16进制长度)(显示A8)
  LCD_ShowHexNum(1, 15, 0xA8, 2);
  // 在2行1列显示2进制数字1010 1010，长度为8(2进制长度)(显示10101010)
  LCD_ShowBinNum(2, 1, 0xAA, 8);

  // // 异常显示1
  // // 在1行13列向后显示字符串Hello(显示Hel)
  // LCD_ShowString(1, 14, "Hello");

  // // 异常显示2
  // 在1行1列显示数字34，长度为1(显示4)
  // LCD_ShowNum(1, 1, 34, 1);
  // // 在1行3列显示数字56，长度为3(显示056)
  // LCD_ShowNum(1, 3, 56, 3);
  // // 在1行7列显示有符号数字+3，长度为2(不含符号)(显示+03)
  // LCD_ShowSignedNum(1, 7, 3, 2);
  // // 在1行11列显示有符号数字-45，长度为1(不含符号)(显示-5)
  // LCD_ShowSignedNum(1, 11, -45, 1);
  // // 在2行1列显示16进制数字A8，长度为1(16进制长度)(显示8)
  // LCD_ShowHexNum(2, 1, 0xA8, 1);
  // // 在2行3列显示16进制数字A8，长度为2(16进制长度)(显示0A8)
  // LCD_ShowHexNum(2, 3, 0xA8, 3);

  // // 异常显示3
  // // 在1行1列显示2进制数字1010 1010，长度为7(2进制长度)(显示0101010)
  // LCD_ShowBinNum(1, 1, 0xAA, 7);
  // // 在2行1列显示2进制数字1010 1010，长度为9(2进制长度)(显示010101010)
  // LCD_ShowBinNum(2, 1, 0xAA, 9);

  while (1)
  {
  }

  // 每秒数字递增
  // while (1)
  // {
  //   LCD_ShowNum(1, 1, num++, 5);
  //   delayMs(1000);
  // }
}
